[
=== About

Also Written In Brainfuck (awib) is an optimizing brainfuck
compiler, 100% written in brainfuck. Awib reads brainfuck source
code as input and writes compiled programs as output. Awib is
a cross-compiler with several different target platforms available.


=== Requirements

Awib will run smoothly in any brainfuck environment where:

   o) Cells are 8-bit or larger

   o) The read instruction ',' (comma) issued after end of
      input results in 0 being written OR -1 being written
      OR no change being made to the cell at all.

The vast majority of brainfuck environments match these criteria.


=== Environment

Code compiled by awib will execute in an environment where:

   o) Cells are 8-bit wrapping integers.

   o) Issuing the read instruction ',' (comma) after
      end of input results in the current cell being
      left as is  (no-change on EOF).

   o) At least 2^16-1 = 65535 cells are available.

   o) Operating beyond the available memory, in either
      direction, results in undefined behaviour.


=== Usage

Run awib in your brainfuck environment of choice. Feed brainfuck
source code to awib as input and the compiled program will be
written as output.

Awib is a cross-compiler. The supported target platforms are
listed in table 1. By default, the target "386_linux" is chosen.

To specify a target platform, insert a line on the form "@TARGET"
(without the quotation marks and with "TARGET" suitably replaced)
at the very beginning of the source code you wish to compile.
Awib will then produce output accordingly.

 +----------------+--------------------------------------------+
 |   TARGET       |   Description                              |
 +----------------+--------------------------------------------+
 | 386_linux      | Linux on i386                              |
 +----------------+--------------------------------------------+
 | lang_c         | C programming language                     |
 +----------------+--------------------------------------------+
       Table 1 - Available target platforms


=== Optimizations

Awib is an optimizing compiler:

 o) Sequences of '-','<','>' and '+' are contracted into single
    instructions. E.g. "----" is replaced with a single ADD(4).

 o) Mutually cancelling instructions are reduced. E.g. "+++--<>>"
    is equivalent to "+>" and is compiled accordingly.

 o) Some common constructs are identified and replaced with single
    instructions. E.g. "[-]" is compiled into a single CLEAR-
    instruction.

 o) Loops known to never be entered are removed. This is the case
    for loops opened at the very beginning of a program (when all
    cells are 0) and loops opened immediately after the closing
    of another loop.

== Hacking

You can contribute to awib!
< link to sourceforge project page goes here! >

Mats Linander 2007-08-23
matslina (at) kth (dot) se
]

>>>>>>>+>>>>+[>,[->+>+<<]>>[-<<+>>]+<+[-[>+++++[-<------->]+<-[-[-[-[-
-------------[--[-->>+<<[>>-<++[-<--------->]+<[--[>+++++++++[-<++++++
++++>]<[-]]]]]]          ]]]]]]>[-<<<->>>]<<<]>>>>[->+++++++++++++++++
+++<<<<[-]>>>              +[-<,+[-<+<+>>]+<<->[-[---------[-[---[>+++
+[-<---->]+<                +[-----------[-[-[-[--------------[--[>++[
-<---------      >]+<--      [--[>+++++++++[-<++++++++++>]<[-]]]]]]]]]
]]]]]]+>[-      <->]>>[-      >+<]<<<[->>>+>->+<[>-]>[>]<[-<<->>]<<<<<
]>>>]+>[<      -]<[<]>[-<      <<,>>>>]<<<<+[->+<]>[-<<[<]<<<+>>>>[>]>
]+++++++      ++++++++++++      +>>>>[-<<<<->>>>]<<<+++<<<[<]<<<->>>>[
>]>>[[-      >+>+<<]>[-<+>]      +>-[-[-[<->[-]]<[->>+++++++[->+++++++
<]++++      ++++++++++>[->++      >++>++>++>++>++>++>++>++>++>++>++>++
>++<<                              <<<<<<<<<<<<]>++++++++++>->++++++++
++++>                              +++++>--->>++++++++++++++++>->+++++
++>++      ++++++++++>++++>++      +++++++++++++++++>+>+++++++++<<<<<<
<<<<<      <<<<<<]>]<[->>++++      +++[->+++++++<]++++++>[->++>++>++>+
+>++>      ++<<<<<<]>++++++++      ++>->++++++++++++>+++++>--->+<<<<<<
<<<]>      ]<[->>+++++++[->++      +++++<]+++++++++>[->+>+>+>++>++>++>
++>++      >++<<<<<<<<<]>++>+      ++++++>+++++>--->++++++++++>+++++++
>++++      ++++++++>+++++++++      ++++++++++>++++++++++++++++++++++<<
<<<<<      <<<<<]<<[->>+>>-<<      <<]>>[-<<+>>]>+>[<++++[->++++<]>[-]
]<[          -<+<<<<[<]>[[-<          +<+>>]<[>>[>]>>>>>[>]>+>[<-]<[<]
>[-<<[<]<[-]<<<<[<]<[-]+>>[>]>>>>>[>]>>+<]>-<<<[<]<<<<<[<]<-]>>[>]>>>>
>[>          ]>>[[-]<<<[<]<[          -]>>[>]>>]<<+[      <]<<<<<[<]>]
<<<[[      ->>+<<]<]>>>[>]>>>>      >[>]<     [-<]<[-     <<<<[<]<<<<[
-]>>>      >>[>]>>[-<<<[<]<<<<      +>>>       >>[>]>     >]+>]>]>>>[>
]<[[-      ]<]<<<<-]<[-]<<[[-]      <]<<       <+[->>     >>+<<<<]>>>>
->>>]      <<<+[->>>>>>>+<<<<<      <<]>>     >>>>>-+     [[-<+>]>+<]>
[-<<-      >>]<<[[->+>+<<]>[-<      +>]++++++[->-----     --<]+>-[-[-[
-[---      -----------[--[<+++      [->        ------     -<]+>-[--[<-
>>+++      ++++[-<++++++++++++      +>]<+      +[-]]]     ]]]]]]<<>[-+
+++++      [-<------->]+<[-[-[      -[-[-      ------            -----
--[--      [------------------      -----      ------             [-->
-<<<<      <<<[->>>>+>+<<<<<]>      >>>>[      -<<<<<     +>>>>    >]<
<<[->      >>+>+<<<<]>>>>[-<<<      <+>>>      >]<<<[     ->>>+>    +<
<<<]>>      >>[-<<<<+>>>>]+<-      [+[-]>      [-]<]<     ---[++    +[
-]>>[-]      <<]         <--      -----[+      ++++++     [-]>>>    [-
]<<<]+++      +     +     +      ++>>>[-<      <<[-]<     -<---<    <+
+>>>]]>[-<         <++         +<+<<[>>>-      <-]>>[     ->>]<     <+
<<--------[>      >>-<-      ]>>[->>]<           <+<               <-[
>>>-<-]>>[->>]<<<<+++++++++>>+++++++>[->+<]>[>>>>>+<<<<<[>>+<,[>-]>[>]
<[-<<->>]+<+[>-]>[>]<[-<<->>]<->+++++++++[-<---------->]+<-[>-]>[>]<[-
>>>>>++++++++[-<++++++++>]<[->++++<]<[->+>-<<]>+[-<+>]+>-[<->[-]]<[-<[
-]<+>>]<<<<]+<--[>-]>[>]<[    ->       >>>+<[>-<[->>+<<]]>>[-<<+>>]<<-
>[-<+<->++++++++[->                        ++++++++<]>[-<++++>]<->]<<<
<]+++++++++[-<++    +++                         +++++>]<++++[-]>>>>>+<
[>-]>[>]<<<[[-    >>>+<<                            <]>>[-]<<]>>>[-<<<
+>>>]<<<>>[-<  <<<<<[-]   <<-                         ------>>>>>>]<<<
<<<]]>>>>[-        ]>[- ]<<<]<]>[-<                    <<<<[->>+>+<<<]
>>[-<<+>>   ] <[      ->+>>+<<<]>[-<+>]+           +++   ++++++++++++[
->>---------  ----        ---< <]>>+[<<++           ++++ ++++++++++[->
>+++++++++                  + ++++++<<]+>             >[-]]<------[<[-
]>++++++[                    -]]<[->>+<<]               ++++++>+>[-<-<
------<+>                      ]>>]<]>[-                 <<<<<[->>+>+<
<<]>>[-<<+                      >>]<[->                   +>>+<<<]>[-<
+>]++++++                ++     ++++++                     ++[->>-----
-------                 ---     -<<]>                >+[    <<++++++++
++++++                 ++[     ->>+ +++     +         ++++  +++++++<<]
+>>[-                 ]]<    ----- [<[-]>+++++        [-]] <[->>+<<]++
+++>                 +>[-  <-<--- --<+>]>>]<]>[         <<<++++>>>->]<
]>[                   -<< <<<[-> >+   >+<<<]>>           [-<<+>> ]<[->
+>>  +<<          <]  >[-< +>]> ---[<+++>+++[               -    ]+>[-
]>  ]>           [<+ +++++++++ ++++++[->----  -                 ------
-- --             -<]>+>+<[<< <+         >>++                  +++++++
+++           +   +++[->++++ +++++     +++++                  ++<]>[-]
>-          <]>[  -<<<<[-]<   --->>>]<]]<]>                     [<<<++
>          >>->] <]>[-<<<<      <[->>+>+<                        <<]>>
[         -<<+> >]<[->+>>                              +<<        <]>[
-      < +>]>-[<+>+[-]+>          [-]>]>[                <++       +++
+    +++ +++++++[->----            ------                 ----     --<
]>   +>+ <[<<<+>>+++++               +++++                 ++++    ++[
->+   ++ ++++++++++++     +            <]>[ -]       >      -<]    >[-
<<<<  [- ]<->>>]<]]<]    <                 <[[->+   <]>     >+<   <]>[
-<+>  ]< <<[[->>>+<     <<     ]>            >>>+<<<       <]>>  >[-<<
<+>> >]+  >--[<->+     +[-    ]]<[-            <<[->>+>   +<<<] >>[-<<
+>>]<<<<  [->>>>+     >+<<<   <<]>>>>  [-<       <<<+>>>>  ]+>- ---[--
-----[<    ->+++     +++++++  +[-]]]<[ -<-<[      -]+ <-[>- <[->>+<<]]
>>[-<<     +>>]<     [-<<[-]] ]]>>>]<[-]> ,+[[    -<+> ]>+< ]>[-<<->>]
<<]<<      <<[<<  ] <+<<+>>>>> [<<<[->>+<< ]<[    ->>+<< ]< [->>+<<]<[
->>+  <     <]>   > >>>>>[-<<<<<<+>>>>>>]<[ -    >+<<<<<<< +>>>>>>]+>-
---- -      -[-  [< ->++++++++[-]]<[-<<>>+<  [  >-<[->>+<<]] >>[-<<+>>
]<<->[      -<+  <- >++++++++[    ->++++++++ <  ]>[-<++++>]<-> ]<<>>]>
]<[<<       [-<  <- >>>>>+<<<      ]<<[[->>+ <<  ]>>>>-<<<<]>>> [-<<-<
+>>>]        <<  [[  ->>+<<]>      >>[-]<<<] >>[ -<<+>>]<<<[->+  >>+<<
<]>>[     -< <+> >]  >>>[-<<<+    <<+>>>>>]< [-<<<<<+>>>>>]<<>    >>++
+++++    +[-  <+++++  +++>]<[->++++<]<[->+>  -<<]>+[-<+>]+>-[<    ->[-
]]<[-<   [-]< +>>]<<<  <<[->[-]>[-]>[-<+<+  >> ]<[->+<]>>[->+<<  <+>>]
>[-<+>   ]<<<  <<]>>>>   >]<<[[->>+<<]>>>  +<<  <]>>[-<<+>>]<[[ ->+<]>
>+<<]>[  -<+>] +>[<->[-    ]]<<<>>[-<+    >>>[>  >]>[-]+<<<[<  <]]>>]<
<<<>>+<[  >-<[  ->>+<<]]>               >[-<<+>>   ]<<->[-<   +<->++++
++++[->++  ++++  ++<]>[-<++++       >]<->]<<>[>>+<          ]>[<]<<[[-
>>+<<]>>>+  <<<   ]>>[-<<+>>]>[[-]<+>]<<<>>[->>>[-]+      <<<]<[-]<[-]
<[->+<]<[-> +<]    >>>>>>>[-<<<<+>>>>]<<< <<< <<<[<<]>  +>[>>]>>>[-<<<
[<<]>->[>>]++++     +++++++[->++++++>+  ++++++  +++>++  +<<<]>+++.>+++
+..---.+++.<--       ---------.>>-.<   +++.---  ----.  ------------.-.
+++++++++++.--        ---------.+++   +++++++++   +.- ----------.++.-.
>.<--.+++++++          +++++++++.-   -----------  --- --.++.++++++++.-
-----.++++++  +        ++++++++.   -.>+.---[--->+ <]> .[-]<<[-]<[-]>]<
<<<<[<<]>[<< [-      [ -[[-]>>  -<<]>>[-><<<<<<<< <++ ++++++++++++++++
++[->+++>++>+++      + +>++++ +>++++++<<<<<]+++++ +++  ++>>----->>++++
++++++<<.>++++      +. >.<-- ----.+>--.+++++++++.<.+. < ---.+++<.>>>--
.+.<-.+++++.>-      -- --.-< <++++++++ +++.---------- -> -.----<<++.--
<.>>>>>>++++++     +++ [<<<<.>.+.+.++  +.>.<----.<---. >. >>>>++++++[-
<++++++++>]<.     >++ ++++[-<-------   ->]<<<<<++++++++ .> >>.<<<+.---
------.+++>-     >>> [->+>+<<]>[-<+>  ]+>-[-[-[-[-[-[-[- [- [<->[-]]<[
-<<<<<+++++     ++. >>++. --<<<+.>++ ++++.-----  ------- -<- -.+<.>>>>
>>>]>]<[-<<    +++ ++.-- --->++.-->]>]<[-<<-.<<+  +++.+.> --. ++<----.
-<+++++.++    .>> ++.-- <<-.------>>>++++.--->+   ++.--->] >]< [-<<<++
.--<<++++   ++++ .---- ----<+.>>>>.<<<<--.+<.>   >>>>>>]>] <[-< <<++.-
-<<++++    ++++  ++.-  ---------<+.>>>>.<<<<    --.+<.>>> >> >>] >]<[-
<<<++.   +++++. -.<-. +++++.-------.+++>--   .<<+++++.++. >>  --. --<<
-.-    -----<-  .+<.>>>>>>>]>]<[-<<<<<+++  ++++.>>++.--<  <+  ++. ----
------<+.>>>>. <<<<--.+<.>>>>>>>]>]<[-<< <<-.<<+.>>++++.  --  .>+  +++
++.<--.+++++.  ------ -.>--.<<+++++.+.<--.>>++++++++.---. <-  .>-  --.
<<+++.-.->+++ +++++.-- -----.+.------->>--.--<<<+.>>.+<<-- .+ <.>  >>>
>>>]>]<[-<<<  <<+++++++ .>>++.--<<+.- -------<+.>>>>.<<<<-- . +<.  >>>
>>>>]><<-]<< <-.+++++.--   -----.>++ ++.<<---.>+.>+++.<++++.  --   ---
------.<<--- ---------.>>           >>.<<+++++++++++....----  --  ---.
<<++++++++++ +.<.>>>++++++         ++++++.+++++.>-.<<.>-.--- --  -----
--.++++++++. +++++.<+++++++       +.+.>>>+++.<<<<<.>>>----- --  ----.+
++++.------- .>--.<<--------      -.++++++++++.>>--.<<<++.> >  +.>++++
+.<++++.<<-- .<.>>>+++.+++++.>   -.<<----------.>----------   -.<<.<.[
-]>[-]>[-]>[ -]>[-]>[-]>>>>[<<++ ++++++++[->++++++++++<]>+.   -[--<+>>
+<]>--.[-]>[  -<<<<<<<+>>>>>>>] <<<----------.+[->>>+<<<]<   <<<>>>>+[
+++++++++[-<+ +++++++++>]+<[-<< +<[>-]>[>]<[->>>[-]<<<]<->   >>]>[-<+>
>+<]<[->+<]>]  >[>++++++[-<+++ +++++>]+<.[-]]<<<<++++++++   ++[-<+++++
+++++>]>>>+[<+ +++++++++[-<<+< [>-]>[>]<[->>>[-]<<<]<->>   >]>[-<+>>+<
]<[->+<]>]>[>[  -]++++++[-<++ ++++++>]<.[-]]>[+++++[-<+   +++++++>]<.[
-]>]<<<<<++++++ ++++[-<++++++ >]<--.[-]>>>>>>>.[-]++++   ++++++.------
---->]>[-]>[-]+  +++++++++[- >+++++++++++>+++>+++++<<   <]>++++.------
-------.++++++++ +++++++.+.- --.----.>++.>--.+++++++   ++++.<<++++++++
+++++++.>>>+++++  +++++.[-] <[-]<[-]<[-]<]<<]>>[->[   >>]>[->>+<<]>[->
>+<<]>>>+[-<<[->> +<<]+>[-> >+<<]+>>>+<[>-<[->>+<<   ]]>>[-<<+>>]<<->[
-<+<->++++++++[->  +++++++ +<]>[-<++++>]<->]<<>[>   >+<]>[<]<<[[->>+<<
]>>>+<<<]>>[-<<+>>  ]>[[-] <+>]<<<>>]<<+>+>+>+>+   >+>+>+[<]>>->->>->-
>-<<<<<<<>>>+++++>  ++<<< <<<<<[<<]>>[[-<+<<+>>   >]>[-<<<+>>>]<<>+<-[
-[-[-[-[-[-[-[-[[-]  >-<] >[->++<]<]>[->>[>>]>   >>[[[>]>]>]<<<-<[->>+
>>+<<<<]<[->>+>>+<<  <<] >>[-<<+>>]>[-<<+>>]<   <<[-<<+>>]>[->+<]>[-<+
+++++++[-<++++++++>]  <[ ->++++<]<[->+>-<<]>   +[-<+>]+>-[<->[-]]<[-<[
-]<+>>]>>]<<+>>>>>>-  < <[->>>[>]>>>[>>>]>+   <<<<[<<<]<[<]<<]>[->>[>]
>>>[>>>]>>+<<<<<[<<<]   <[<]<]<+>+>+[>]>>>   [>>>]>[->>>+<<<]>[->>>+<<
<]<<+[[<]<]<->>>[>>>]  >[-<<<+<[<<<]>+>>[   >>>]>]>[-<<<+<<[<<<]>>+>[>
>>]>>]<<<<<[<<<]+[>>>] <[->>+<<]<[->>+<<   ]<->>++++++[->>>>++++++++[-
<++++++++>]<[->++++<]  <[->+>-<<]>+[-<+   >]+>-[<->[-]]<[-<[-]<+>>]<<<
]<++++++++++++++++[-<  +++++++++++++++   +>]<-[->+>+<<]+>>>[-<<->>]>[-
>+<]>[-<<+<[>-<[->>+<  <]]> >[-<<+>>]   <<->[-<+<->++++++++[->++++++++
<]>[-<++++>]<->]>>]<<   <<<[  <<<]<[<    ]<<<[[[<]<]<]<<[<<]]<]>[->>[>
>]>>>[[[>]>]>]<<<->>++   +++++[-<<<<   > >>++++++++[-<++++++++>]<[->++
++<]<[->+>-<<]>+[-<+>]   +>- [<->[-] ] < [-<[-]<+>>]<<>>>>]<++++>+>>->
->[>]>>>[>>>]+[<<<]<[[[  <]    <]<]<[[ [ <]<]<]<<[<<]]<]>[-<+<<----->-
[<+>>+<-[>+++++++++++++  +[   -<<+++++ + ++>>>>++++++++<<]>>-<<+<<----
-[>[>-]>[>]<[-<<[->>>+<   <<  ]+>+>]+< - <-]+++>[<+>>>>+<<<-[<+>>>>+<<
<-[<+>[->>>+<<<]]]]>->[-  >-  <]>[-<<+> > ]<<<]]<[->>>>+<<<<]++++++>>[
-<+>]>]<]>[-<+<<---->-[<  +>  >+<-[>++++ + +++++++++[-<<++++++++>>>>++
++++++<<]>>-<<+<<-----[>  [>- ]>[>]<[-<<[  ->>>+<<<]+>+>]+<-<-]+++>[<+
>>>>+<<<-[<+>>>>+<<<-[<+   >[->>>+<<<]]]]> ->[->-<]>[-<<+>>]<<<]]<[->>
>>+<<<<]+++++>>[-<+>]>]<   ]>[->++++<]<]>[- >+++<<+<-[>-]>[>]<[->>-<<]
<+>>]<]>[->++++++<]<]>[-   >+++<<+<-[>-]>[> ]<[->>-<<]<+>>]<>>[->[>>]>
>>[[[>]>]>]<<<-<<>>>++++   ++++[-<++++++++>  ]<[->++++<]<[->+>-<<]>+[-
<+>]+>-[<->[-]]<[-<[-]<+>  >]<<>>+[[[<]<]<]  <<[<<]>]>]+++++++++[>++++
++++++++++<-]>+.+[--<+>]<   +++++.+++++++.-  -----.>+...++.---........
++.--.+++.---.+.-...++++[   -<+++>]<++.>...  ++++++++[-<---->]<.>.....
......<.>.+++++[-<---->]<   .>.+.-.<+++++++  +.[-].....>>>.-..........
.....<++++++[->++++++++++   ++++<]>>>>-<<<[  ->>>>++++++++[-<++++++++>
]<[->++++<]<[->+>-<<]>+[-<  +>]+>-[<->[-]]   <[-<[-]<+>>]<<<]>>.<.<..>
>.<.<..+++++++.[-].......>   [-]>[-]>>>>+<  +<+<+<+<+<+<+<<<++++++++++
[->++++++++++++++++++++++>   +++++++++++++  ++++++++++++<<<+++++<+++++
+++++++++++++>>]>>+++++<<<   <++++.++++++  ++.>>...<-.>>-.<<<-------.>
>>>..<<..<<+.>>+++.---...<<  ++++.>------  ---------.>...<++++++++++++
+++.>>>.<<<.>>+++++++++++++  +++++.<<<+++  ++++++++++++.>>>>-[--<<+>>]
<<+.+++++++++.<<-----------  .>+[->>>+++  <<<]>>>+.<+++++++++++++++.--
-------.>++++++++++++++++++   +.<<.<<+++  ++++++++++++.>>.<<----------
----.>>+[--<+>]<--.++[->++<   ]>-.<++++[  -<+++++>]<+++.>>.<<+++++.>>+
++[--<+>]<+..-[->++<]>---.>+  +++++++++  +.<+++[--<+>]<.-..<[-]>[-]>>[
-]>[-]+<+<+<+<<<[<<]>>[<+>-[   -[-[-[-[  -[-[-[-[[-]<->]<[-+++++++++++
[->+++++>++++++++++++<<]>>++   ++.[-]<+  +.[-]<]>]<[-++++++++++[->++++
++++++>+++<<]>++.[->++<]>-.[-  ]>[>>]>[  >]+>+>+>->>.[-]<.[-]<<[<]<<[<
<]<]>]<[-+++++++[->++++++++<]   >++.-.  ------[->++<]>.<+++[-<+++++>]<
.[->>++<<]>>.[-]>[>>]>[>]+>+>   +>->>.  [-]<.[-]<<[<]<<[<<]<]>]<[->+>-
[-[<+++++++++[-<+++++++++++++>  ]<+.[-  <+>>+<]++++++[-<++++++++++>]<+
+.[-]>>------[<<+>>>[-[-<<+>>]  <-<<->  >>]<<[->>+<<]<[->>[-<+>]<<]>>]
++++++++[-<<++++++++++++++++>>]  +<[[-  <->]<-.[-]>>-<]>>[<-<<-.[-]>>+
+++++<]<[-<<-.[-]>>]>]<[.++++++  +++++  +++[->+++++++++++++++<]>++++++
++.[-]<]>]<[+++++++[->++++++++<  ]>+.[ - ]<]<]>]<[->+>-[-[<+++++++++[-
<+++++++++++++>]<+.[-<+>>+<]+++  +++++ + +[-<++++++++++>]<++.[-]>>----
--[<<+>>>[-[-<<+>>]<-<<->>>]<<[- >>+<<] <[->>[-<+>]<<]>>]++++++++[-<<+
+++++++++++++++>>]+<[[-<->]<-. [ -]>>-<] >>[<-<<-.[-]>>+++++<]<[-<<-.[
-]>>]>]<[>++++++++[-<+++++>]< .-[ ->++++ ++<]>-------.[-]<]>]<[+++++++
[->+++++++++<]>+.[-]<]<]>]<[ -+++ ++++++ +[->+++++++++++++<]>+++++++.+
[------<++++++++++>]<++++++ ++++. [------ >+++++<]>+++++.-----[-----<+
++>]<++++++++.[-]]>]<[->+> -[<-]<  [<]++++ [-<++++>]<[->++++++++<]+>>[
-<<->-[->++<]>.[-]++++++++ +.[-]]< <[->.++[ ------------->++++<]>+.[-]
>+.[-]<<<]>]>]<[-+++++++++ +[->+++ +++++++++ ++<]>---.+++[-----<++++++
+++>]<----.++[---------->+ + +<]>. +++++++[-- <+++++>]<.[-]+++++[->+++
++<]>[-<+++++>]<+++.++++++  + + [- ------->++ ++<]>-.[-]<]>]<[->+>-[<-
]<[<]++++[-<++++>]<[->+++++  + ++  <]+>>[-<<- >-[->++<]>.[-]+.-]<<[>.[
-]<.>>>+.[-]<<<-]>]>>>]<++++  ++   ++++[->+ + ++++++++++++<]>---.+++[-
------<+++++++++++>]<----.>++    +  ++++ + [  -<++++>]<++[---------->+
++<]>.+++++++[--<+++++>]<.[-]+++++[  ->++ +  ++<]>[-<+++++>]<+++.[-]<]
<<]]
